package com.movie2.mapper;

;

import com.movie2.model.entity.Film;
import com.movie2.model.entity.Test;
import com.movie2.model.entity.Test1;
import com.movie2.model.entity.Test2;
import com.movie2.model.vo.Test1Vo;
import com.movie2.model.vo.Test1_1Vo;
import com.movie2.model.vo.Test2Vo;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.sql.Wrapper;
import java.util.Map;
import java.util.List;

/**
 * FilmMapper数据库操作接口类
 **/

@Mapper
public interface FilmMapper {

    // 获得热门电影
    @Select("select * from t_film order by hot desc limit #{hot}")
    List<Film> getFilmsHot(@Param("hot") int hot);

    /**
     * 查询（根据主键ID查询）
     **/
    Film selectByPrimaryKey(@Param("id") Integer id);

    /**
     * 查询（获得数据表中的数量）
     **/
    public int selectFilmCount();

    /**
     * 查询（根据其他条件查询需要的结果）
     **/
    public int selectFilmsCountByCondition(Map<String, Object> map);

    /**
     * 查询（通过Map条件进行分页查询）
     **/
    public List<Film> selectFilmsPerPageByCondition(Map<String, Object> map);

    /**
     * 查询（通过Map条件，获得所有符合的信息）
     **/
    public List<Film> selectFilmsCondition(Map<String, Object> map);

    /**
     * 查询全部信息
     **/
    public List<Film> selectAllFilms();

    /**
     * 查询（根据实体类的条件查询）
     **/
    public List<Film> selectFilmsByCondition(Film record);

    /**
     * 删除（根据主键ID删除）
     **/
    public int deleteByPrimaryKey(@Param("id") Integer id);

    /**
     * 删除（条件删除）
     **/
    public int deleteByCondition(Film record);

    /**
     * 添加
     **/
    public int insert(Film record);

    /**
     * 添加 （匹配有值的字段）
     **/
    public int insertSelective(Film record);

    /**
     * 修改 （匹配有值的字段）
     **/
    public int updateByPrimaryKeySelective(Film record);

    /**
     * 修改（根据主键ID修改）
     **/
    public int updateByPrimaryKey(Film record);
    


    List<Test1Vo> test4();
    List<Test2Vo> test5();
    int test6(List<Test2> test2List);
    int test7(Test test);
    int test8_1(Test1 test1);
    int test8_2(List<Test2> test2List);
    int test9(List<Integer> list);
    @SuppressWarnings("MybatisXMapperMethodInspection")
    Map<String,Object> test10(Integer id);
    int test11(List<Test> testList);
    List<Test1> test12();
    int test13(List<Long> testList);
    Test1_1Vo test14(List<Integer> idList);
    
    int getCount(String str);
    
    int insertOne(Test1 test1);
    
    int updateOne(Long num);

}